//#include <base.js>

/**
* 
* Classe gestione json - Contiene metodi per caricare json ecc...
* 
* @namespace CWN2
* @class json
* 
*/

CWN2.json = {
	
/**
* 
* Funzione per caricare un oggetto json remoto in maniera sincrona o asincrona
* 
* @method load
* 
* @param {String} url Url del file o del servizio
* @param {bool} sync Flag che indica se effettuare una richiesta sincrona
* @return {obj} Oggetto Javascript 
* 
*/

	load: function(url,sync) {
	  if (CWN2.base.DEBUG) {
		console.log('CWN2.json.load');
	  }

	  var request;
	  // richiesta sincrona
	  if (sync) {
		  if (window.XMLHttpRequest) {              
		    request =new XMLHttpRequest();              
		  } else {                                  
		    request = new ActiveXObject("Microsoft.XMLHTTP");
		  }
		  if (request) {
		     request.open("GET", url, false);                             
		     request.send(null);
			return JSON.parse(request.responseText);
		  } else {
		     return false;
		  }
	  } else {
	  	this.loadAsync(url);
	  }
	},
	/**
	* 
	* Funzione per caricare un oggetto json remoto in maniera asincrona
	* 
	* @method loadAsync
	* 
	* @param {String} url Url del file o del servizio
	* @param {bool} sync Flag che indica se effettuare una richiesta sincrona 
	* @return {obj} Oggetto Javascript 
	* 
	*/
	loadAsync: function(url){
	  //TODO: da rivedere
	  // richiesta asincrona
		function handler(request) {
			return JSON.parse(request.responseText);
		}
		request = OpenLayers.Request.GET({
	    	'url': url,
	    	'callback': handler
		});	
	}
	
	
};

